<?php
require_once 'protoweb/ventas_protoweb.php';

/**
 * @package sisco
 * @subpackage controller
 */
class Ventas extends Ventas_protoweb
{
    public function init()
    {
        // chequeo y obtengo el usuario loggeado
        $data['logueado'] = $this->getUsuarioLogueado();

        // valido permisos
        $gruposValidos = array('venta');
        // ej. array('venta','logistica','contable','directivo');
        $this->validarPermisos($data['logueado'], $gruposValidos);
        
        // chequeo y obtengo el almacen loggeado
        $data['almacen'] = $this->getPuntoDeVenta();
        
        // Message Handler
        $data['msg'] = new PwMsgHandler();
        
        $data['venta_seccion'] = 'init';
        
        $this->smartyview->render('venta_init.html',$data);
    } // function process
    
    public function process()
    {
        // chequeo y obtengo el usuario loggeado
        $data['logueado'] = $this->getUsuarioLogueado();

        // valido permisos
        $gruposValidos = array('venta');
        // ej. array('venta','logistica','contable','directivo');
        $this->validarPermisos($data['logueado'], $gruposValidos);
        
        // chequeo y obtengo el almacen loggeado
        $data['almacen'] = $this->getPuntoDeVenta();
        
        // Message Handler
        $data['msg'] = new PwMsgHandler();
        
        $data['venta_seccion'] = 'process';
        
        if ($this->iniciarVenta($data))
            $this->smartyview->render('venta_process.html',$data);
        else
			$this->init();
    } // function process
	
    public function close($id)
    {
        // chequeo y obtengo el usuario loggeado
        $data['logueado'] = $this->getUsuarioLogueado();

        // valido permisos
        $gruposValidos = array('venta');
        // ej. array('venta','logistica','contable','directivo');
        $this->validarPermisos($data['logueado'], $gruposValidos);
        
        // chequeo y obtengo el almacen loggeado
        $data['almacen'] = $this->getPuntoDeVenta();
        
        // Message Handler
        $data['msg'] = new PwMsgHandler();
        
        $data['tipo_movimiento'] = new Tipo_Movimiento(4);
        $data['usuario'] = $data['logueado'];
        
        $data['venta'] = new Venta($id);
        $data['detalles_venta'] = new Detalle_Venta();
        $data['detalles_venta']->where_related('venta','id',$data['venta']->id)->get();
        
        foreach ($data['detalles_venta'] as $detalle_venta) {
            $producto = new Producto($detalle_venta->producto_id);
            $movimiento = new Movimiento();
            $movimiento->cantidad = $detalle_venta->cantidad;
            $movimiento->fecha = $data['venta']->fecha;
            $movimiento->observacion = 'venta_id = '.$data['venta']->id;
            $movimiento->save(array($data['tipo_movimiento'], $data['almacen'], $data['usuario'], $producto));
                //  tipo_movimiento  almacen  usuario  producto
        }
        
        $data['msg'] = 'Compra finalizada correctamente';
        
        redirect('ventas/init');
        //$this->init();
    } // function close
    
    private function iniciarVenta(&$data) {
        $data['venta'] = new Venta();
        $data['venta']->fecha = date('Y-m-d');
        $data['usuario'] = $data['logueado'];
        return $data['venta']->save($data['usuario']);    
    } // private function iniciarVenta
    
    public function index()
    {
        $this->init();
    }
    
    public function __construct() 
	{
		parent::__construct();
	}

} // class Ventas

/* End of file ventas.php */
/* Location: ./application/controllers/ventas.php */